package com.sls.game.dao;

import java.util.List;

import com.sls.game.page.Pagination;
import com.sls.game.pojo.GoodsManageInfo;

/**
 * 
 * @description 商品信息管理DAO
 * @author Wangxuegang
 * @date 2012-9-14
 * 
 */
public interface GoodsInfoManageDAO {
	/**
	 * 分页查询
	 * 
	 * @param goodsManageInfo
	 * @return
	 */
	public Pagination<GoodsManageInfo> queryPaginationList(
			GoodsManageInfo goodsManageInfo);

	/**
	 * 根据产品Id查询单条记录
	 * 
	 * @return
	 */
	public GoodsManageInfo queryGoodsInfoByGoodsId(String goodsId);

	/**
	 * 产品新增
	 * 
	 * @param goodsManageInfo
	 */
	public void insert(GoodsManageInfo goodsManageInfo);

	/**
	 * 产品修改
	 * 
	 * @param goodsManageInfo
	 */
	public void update(GoodsManageInfo goodsManageInfo);

	/**
	 * 产品状态修改
	 * 
	 * @param goodsManageInfo
	 */
	public void updateState(GoodsManageInfo goodsManageInfo);

	/**
	 * 查询最大产品Id值
	 * 
	 * @return
	 */
	public String queryMaxGoodsId();

	/**
	 * 根据品牌Id，查询该品牌下的所有产品
	 * 
	 * @param brandId
	 * @return
	 * @date 2012-09-24
	 */
	public List<GoodsManageInfo> queryListByBrandId(
			GoodsManageInfo goodsManageInfo);

	/**
	 * 根据商品名称，查询单条记录
	 * 
	 * @param goodsName
	 * @return
	 */
	public GoodsManageInfo queryByGoodsName(String goodsName);

	/**
	 * 查询未加入到某一价格模版下的 所有 商品编号
	 * 
	 * @param goodsManageInfo
	 * @return
	 * @date 2012-10-23
	 */
	public List<GoodsManageInfo> queryNotInSpecialPriceOFTemPlate(
			GoodsManageInfo goodsManageInfo);

	/**
	 * 查询未加入到供货规则下的所有商品编号和名称
	 * 
	 * @return
	 */
	public List<GoodsManageInfo> queryGoodsIdAndNameNotInRule();

	/**
	 * 根据商品编号，查询符合条件的记录
	 * 
	 * @param goodsManageInfo
	 * @return
	 */
	public GoodsManageInfo queryRecordByGoodsId(GoodsManageInfo goodsManageInfo);

	/**
	 * 查询所有商品编号
	 * 
	 * @return
	 */
	public List<GoodsManageInfo> queryAllGoodsId();
	
	/**
	 * 
	 * @param goodsId
	 * @return
	 */
	public String queryGoodsNameByGoodsId(String goodsId);

	/**
	 * 删除信息
	 * 
	 * @param goodsId
	 * @return
	 */
	public void deleteByGoodsId(String goodsId);
	
	public void updateByBrandId(GoodsManageInfo goodsManageInfo);
}
